Lịch sử Cơ_sở_dữ_liệu

Các kích thước, khả năng và hiệu suất của cơ sở dữ liệu và DBMS tương ứng của chúng đã tăng theo thứ tự độ lớn. Những sự gia tăng hiệu suất này được kích hoạt bởi sự tiến bộ công nghệ trong các lĩnh vực của bộ xử lý, bộ nhớ máy tính, lưu trữ máy tínhmạng máy tính. Sự phát triển của công nghệ cơ sở dữ liệu có thể được chia thành ba thời đại dựa trên mô hình hoặc cấu trúc dữ liệu: điều hướng, [8] SQL / quan hệ và hậu quan hệ.

Hai mô hình dữ liệu điều hướng ban đầu chính là mô hình phân cấp và mô hình CODASYL (mô hình mạng)

Mô hình quan hệ, lần đầu tiên được Edgar F. Codd đề xuất vào năm 1970, đã thoát ly khỏi truyền thống này bằng cách nhấn mạnh rằng các ứng dụng nên tìm kiếm dữ liệu theo nội dung, thay vì theo các liên kết. Mô hình quan hệ sử dụng các tập hợp các bảng kiểu sổ cái, mỗi bảng được sử dụng cho một loại thực thể khác nhau. Chỉ vào giữa những năm 1980, phần cứng máy tính đã trở nên đủ mạnh để cho phép triển khai rộng rãi các hệ thống quan hệ (DBMS cộng với các ứng dụng). Tuy nhiên, vào đầu những năm 1990, các hệ thống quan hệ chiếm ưu thế trong tất cả các ứng dụng xử lý dữ liệu quy mô lớn và Tính đến năm 2018[cập nhật] chúng vẫn chiếm ưu thế: IBM DB2, Oracle, MySQLMicrosoft SQL Server là DBMS được tìm kiếm nhiều nhất.[9] Ngôn ngữ cơ sở dữ liệu thống trị, SQL được tiêu chuẩn hóa cho mô hình quan hệ, đã ảnh hưởng đến các ngôn ngữ cơ sở dữ liệu cho các mô hình dữ liệu khác. Cơ sở dữ liệu đối tượng được phát triển vào những năm 1980 để khắc phục sự bất tiện của sự không phù hợp trở kháng quan hệ đối tượng, dẫn đến việc đặt ra thuật ngữ "hậu quan hệ" và cũng là sự phát triển của cơ sở dữ liệu quan hệ đối tượng lai.

Thế hệ cơ sở dữ liệu hậu quan hệ tiếp theo vào cuối những năm 2000 được gọi là sở dữ liệu NoQuery, giới thiệu các kho lưu trữ khóa giá trị nhanh và cơ sở dữ liệu định hướng tài liệu. Một "thế hệ tiếp theo" cạnh tranh được gọi là cơ sở dữ liệu NewQuery đã thử triển khai các mô hình mới giữ lại mô hình quan hệ / SQL trong khi hướng đến việc phù hợp với hiệu suất cao của NoQuery so với các DBMS quan hệ có sẵn trên thị trường.

Những năm 1960, DBMS điều hướng

Cấu trúc cơ bản của mô hình cơ sở dữ liệu CODASYL điều hướng

Sự ra đời của thuật ngữ cơ sở dữ liệu trùng khớp với sự sẵn có của bộ lưu trữ truy cập trực tiếp (đĩa và trống) từ giữa những năm 1960 trở đi. Thuật ngữ này thể hiện sự tương phản với các hệ thống dựa trên băng từ trước đây, cho phép sử dụng tương tác được chia sẻ thay vì xử lý hàng ngày. Từ điển tiếng Anh Oxford trích dẫn một báo cáo năm 1962 của Tập đoàn phát triển hệ thống California là người đầu tiên sử dụng thuật ngữ "cơ sở dữ liệu" theo nghĩa kỹ thuật cụ thể.[10]

Khi máy tính tăng trưởng về tốc độ và khả năng, một số hệ thống cơ sở dữ liệu đa năng đã xuất hiện; vào giữa những năm 1960, một số hệ thống như vậy đã được đưa vào sử dụng thương mại. Sự quan tâm đến một tiêu chuẩn bắt đầu tăng lên và Charles Bachman, tác giả của một sản phẩm như vậy, Kho dữ liệu tích hợp (IDS), đã thành lập "Nhóm nhiệm vụ cơ sở dữ liệu" trong CODASYL, nhóm chịu trách nhiệm tạo và chuẩn hóa COBOL. Năm 1971, Nhóm Nhiệm vụ Cơ sở dữ liệu đã đưa ra tiêu chuẩn của họ, thường được gọi là "phương pháp CODASYL", và ngay sau đó, một số sản phẩm thương mại dựa trên phương pháp này đã được đưa vào thị trường.

Cách tiếp cận CODASYL dựa trên điều hướng "thủ công" của tập dữ liệu được liên kết được tạo thành một mạng lớn. Các ứng dụng có thể tìm thấy các bản ghi theo một trong ba phương pháp:

  1. Sử dụng khóa chính (được gọi là khóa CALC, thường được thực hiện bằng cách băm)
  2. Điều hướng các mối quan hệ (được gọi là bộ) từ bản ghi này sang bản ghi khác
  3. Quét tất cả các hồ sơ theo thứ tự liên tiếp

Các hệ thống sau này đã thêm cây B để cung cấp các đường dẫn truy cập thay thế. Nhiều cơ sở dữ liệu CODASYL cũng đã thêm một ngôn ngữ truy vấn rất đơn giản. Tuy nhiên, trong lần kiểm tra cuối cùng, CODASYL rất phức tạp và cần được đào tạo và nỗ lực đáng kể để tạo ra các ứng dụng hữu ích.

IBM cũng có DBMS của riêng họ vào năm 1966, được gọi là Hệ thống quản lý thông tin (IMS). IMS là sự phát triển của phần mềm được viết cho chương trình Apollo trên System/360. IMS nói chung tương tự khái niệm với CODASYL, nhưng đã sử dụng một hệ thống phân cấp chặt chẽ cho mô hình điều hướng dữ liệu thay vì mô hình mạng của CODASYL. Cả hai khái niệm này sau đó được gọi là cơ sở dữ liệu điều hướng do cách truy cập dữ liệu và bài thuyết trình Turing Award năm 1973 của Bachman là The Programmer as Navigator. IMS được phân loại như một cơ sở dữ liệu phân cấp. Cơ sở dữ liệu TOTAL của IDMS và Cincom Systems được phân loại là cơ sở dữ liệu mạng. IMS vẫn được sử dụng Tính đến năm 2014[cập nhật].[11]

Những năm 1970, DBMS quan hệ

Edgar Codd làm việc tại IBM ở San Jose, California, tại một trong những văn phòng của họ, chủ yếu liên quan đến việc phát triển các hệ thống đĩa cứng. Ông không hài lòng với mô hình điều hướng của phương pháp CODASYL, đáng chú ý là thiếu cơ sở "tìm kiếm". Năm 1970, ông đã viết một số bài báo phác thảo một cách tiếp cận mới để xây dựng cơ sở dữ liệu mà cuối cùng đã đạt đến đỉnh cao trong bài A Relational Model of Data for Large Shared Data Banks.[12]

Trong bài báo này, ông đã mô tả một hệ thống mới để lưu trữ và làm việc với các cơ sở dữ liệu lớn. Thay vì các bản ghi được lưu trữ trong một số loại danh sách các bản ghi dạng tự do được liên kết như trong CODASYL, ý tưởng của Codd là sử dụng " bảng " các bản ghi có độ dài cố định, với mỗi bảng được sử dụng cho một loại thực thể khác nhau. Một hệ thống danh sách liên kết sẽ rất kém hiệu quả khi lưu trữ cơ sở dữ liệu "thưa thớt" trong đó một số dữ liệu cho bất kỳ một bản ghi nào có thể bị bỏ trống. Mô hình quan hệ đã giải quyết điều này bằng cách chia dữ liệu thành một loạt các bảng (hoặc quan hệ) được chuẩn hóa, với các phần tử tùy chọn được chuyển ra khỏi bảng chính đến nơi chúng chỉ chiếm phòng nếu cần. Dữ liệu có thể được chèn, xóa và chỉnh sửa tự do trong các bảng này, với DBMS thực hiện bất kỳ bảo trì nào cần thiết để hiển thị chế độ xem bảng cho ứng dụng / người dùng.

Trong mô hình quan hệ, các bản ghi được "liên kết" bằng các khóa ảo không được lưu trữ trong cơ sở dữ liệu nhưng được xác định là cần thiết giữa các dữ liệu có trong các bản ghi.

Mô hình quan hệ cũng cho phép nội dung của cơ sở dữ liệu phát triển mà không cần viết lại liên kết và con trỏ. Phần quan hệ xuất phát từ các thực thể tham chiếu các thực thể khác trong mối quan hệ được gọi là mối quan hệ một-nhiều, như mô hình phân cấp truyền thống và mối quan hệ nhiều-nhiều, như mô hình điều hướng (mạng). Do đó, một mô hình quan hệ có thể biểu thị cả mô hình phân cấp và điều hướng, cũng như mô hình bảng gốc của nó, cho phép mô hình thuần túy hoặc kết hợp theo ba mô hình này, như ứng dụng yêu cầu.

Ví dụ, việc sử dụng phổ biến hệ thống cơ sở dữ liệu là theo dõi thông tin về người dùng, tên, thông tin đăng nhập, địa chỉ và số điện thoại khác nhau. Theo cách tiếp cận điều hướng, tất cả các dữ liệu này sẽ được đặt trong một bản ghi và các mục không sử dụng sẽ không được đặt trong cơ sở dữ liệu. Theo cách tiếp cận quan hệ, dữ liệu sẽ được chuẩn hóa thành bảng người dùng, bảng địa chỉ và bảng số điện thoại (ví dụ). Bản ghi sẽ được tạo trong các bảng tùy chọn này chỉ khi địa chỉ hoặc số điện thoại thực sự được cung cấp.

Liên kết thông tin lại với nhau là chìa khóa cho hệ thống này. Trong mô hình quan hệ, một số thông tin được sử dụng làm "khóa", xác định duy nhất một bản ghi cụ thể. Khi thông tin được thu thập về người dùng, thông tin được lưu trữ trong các bảng tùy chọn sẽ được tìm thấy bằng cách tìm kiếm khóa này. Chẳng hạn, nếu tên đăng nhập của người dùng là duy nhất, địa chỉ và số điện thoại của người dùng đó sẽ được ghi lại với tên đăng nhập làm khóa. Việc "liên kết lại" các dữ liệu liên quan trở lại thành một bộ sưu tập đơn giản là điều mà các ngôn ngữ máy tính truyền thống không được thiết kế cho.

Giống như cách tiếp cận điều hướng sẽ yêu cầu các chương trình lặp để thu thập các bản ghi, phương pháp quan hệ sẽ yêu cầu các vòng lặp để thu thập thông tin về bất kỳ một bản ghi nào. Các đề xuất của Codd là một ngôn ngữ được định hướng theo tập hợp, sau này sẽ sinh ra SQL phổ biến. Sử dụng một nhánh toán học được gọi là tính toán tuple, ông đã chứng minh rằng một hệ thống như vậy có thể hỗ trợ tất cả các hoạt động của cơ sở dữ liệu thông thường (chèn, cập nhật, v.v.) cũng như cung cấp một hệ thống đơn giản để tìm và trả về các tập hợp dữ liệu trong một thao tác.

Bài báo của Codd đã được hai người tại Berkeley, Eugene Wong và Michael Stonebraker chú ý. Họ đã bắt đầu một dự án được gọi là INGRES bằng cách sử dụng nguồn vốn đã được phân bổ cho một dự án cơ sở dữ liệu địa lý và các lập trình viên sinh viên để tạo mã. Bắt đầu từ năm 1973, INGRES đã cung cấp các sản phẩm thử nghiệm đầu tiên thường sẵn sàng để sử dụng rộng rãi vào năm 1979. INGRES tương tự như System R theo một số cách, bao gồm cả việc sử dụng "ngôn ngữ" để truy cập dữ liệu, được gọi là QUEL. Theo thời gian, INGRES chuyển sang tiêu chuẩn SQL mới nổi.

Bản thân IBM đã thực hiện một thử nghiệm thực hiện mô hình quan hệ, PRTV và một mô hình sản xuất, Business System 12, cả hai đều đã ngừng hoạt động. Honeywell đã viết MRDS cho Multics, và bây giờ có hai triển khai mới: Alphora Dataphor và Rel. Hầu hết các triển khai DBMS khác thường được gọi là quan hệ thực sự là các DBMS SQL.

Năm 1970, Đại học Michigan đã bắt đầu phát triển Hệ thống quản lý thông tin MICRO[13] dựa trên mô hình Dữ liệu lý thuyết tập hợp của DL Childs.[14][15][16] MICRO đã được sử dụng để quản lý các tập dữ liệu rất lớn bởi Bộ Lao động Mỹ, Cục Bảo vệ Môi trường Mỹ, và các nhà nghiên cứu từ Đại học Alberta, trường Đại học Michigan, và trường Đại học Wayne State. Nó chạy trên các máy tính lớn của IBM sử dụng Hệ thống đầu cuối Michigan.[17] Hệ thống vẫn được sử dụng cho đến năm 1998.

Phương pháp tích hợp

Trong những năm 1970 và 1980, các nỗ lực đã được thực hiện để xây dựng các hệ thống cơ sở dữ liệu với phần cứng và phần mềm tích hợp. Triết lý cơ bản là sự tích hợp như vậy sẽ cung cấp hiệu suất cao hơn với chi phí thấp hơn. Ví dụ là IBM System / 38, việc cung cấp Teradata sớm và máy cơ sở dữ liệu Britton Lee, Inc.

Một cách tiếp cận khác để hỗ trợ phần cứng cho quản lý cơ sở dữ liệu là bộ tăng tốc CAFS của ICL, bộ điều khiển đĩa phần cứng với khả năng tìm kiếm được lập trình. Về lâu dài, những nỗ lực này thường không thành công vì các máy cơ sở dữ liệu chuyên dụng không thể theo kịp sự phát triển và tiến bộ nhanh chóng của các máy tính đa năng. Do đó, hầu hết các hệ thống cơ sở dữ liệu hiện nay là các hệ thống phần mềm chạy trên phần cứng đa năng, sử dụng lưu trữ dữ liệu máy tính đa năng. Tuy nhiên, ý tưởng này vẫn được một số công ty như Netezza và Oracle (Exadata) theo đuổi.

Cuối những năm 1970, SQL DBMS

IBM bắt đầu làm việc trên một hệ thống nguyên mẫu dựa trên các khái niệm của Codd là System R vào đầu những năm 1970. Phiên bản đầu tiên đã sẵn sàng vào năm 1974/5 và sau đó bắt đầu hoạt động trên các hệ thống nhiều bảng trong đó dữ liệu có thể được phân tách để tất cả dữ liệu cho một bản ghi (một số trong đó là tùy chọn) không phải được lưu trữ trong một "chunk" lớn. Các phiên bản đa người dùng sau đó đã được khách hàng thử nghiệm vào năm 1978 và 1979, vào thời điểm đó, một ngôn ngữ truy vấn được tiêu chuẩn hóa - SQL [cần dẫn nguồn] - đã được thêm vào. Các ý tưởng của Codd đã tự thiết lập cả khả thi và vượt trội so với CODASYL, thúc đẩy IBM phát triển một phiên bản sản xuất thực sự của System R, được gọi là SQL/DS, và sau đó là Database 2 (DB2).

Cơ sở dữ liệu Oracle của Larry Ellison (hay đơn giản hơn là Oracle) bắt đầu từ một chuỗi khác, dựa trên các tài liệu của IBM về Hệ thống R. Mặc dù việc triển khai Oracle V1 đã được hoàn thành vào năm 1978, nhưng mãi đến khi Oracle Phiên bản 2 đánh bại IBM trên thị trường vào năm 1979.[18]

Stonoplker tiếp tục áp dụng các bài học từ INGRES để phát triển cơ sở dữ liệu mới, Postgres, hiện được gọi là PostgreQuery. PostgreSQL thường được sử dụng cho các ứng dụng quan trọng toàn cầu (các cơ quan đăng ký tên miền.org và.info sử dụng nó làm kho lưu trữ dữ liệu chính của họ, cũng như nhiều công ty lớn và tổ chức tài chính).

Ở Thụy Điển, bài báo của Codd cũng được đọc và Mimer SQL được phát triển từ giữa những năm 1970 tại Đại học Uppsala. Năm 1984, dự án này được hợp nhất thành một doanh nghiệp độc lập.

Một mô hình dữ liệu khác, mô hình quan hệ thực thể, xuất hiện vào năm 1976 và đã trở nên phổ biến cho thiết kế cơ sở dữ liệu vì nó nhấn mạnh một mô tả quen thuộc hơn so với mô hình quan hệ trước đó. Sau đó, các cấu trúc mối quan hệ thực thể được trang bị thêm như một cấu trúc mô hình dữ liệu cho mô hình quan hệ và sự khác biệt giữa hai cấu trúc đã trở nên không liên quan.[cần dẫn nguồn]

Những năm 1980, trên máy tính để bàn

Những năm 1980 mở ra thời đại của máy tính để bàn. Các máy tính mới trao quyền cho người dùng của họ với các bảng tính như Lotus 1-2-3 và phần mềm cơ sở dữ liệu như dBASE. Sản phẩm dBASE rất nhẹ và dễ dàng cho bất kỳ người dùng máy tính nào hiểu được. C. Wayne Ratliff, người tạo ra dBASE, đã tuyên bố: "dBASE khác với các chương trình như BASIC, C, FORTRAN và COBOL ở chỗ rất nhiều công việc bẩn thỉu đã được thực hiện. Thao tác dữ liệu được thực hiện bởi dBASE thay vì người dùng, vì vậy người dùng có thể tập trung vào những gì anh ta đang làm, thay vì phải làm rối với các chi tiết bẩn của việc mở, đọc và đóng tệp và quản lý phân bổ không gian. " [19] dBASE là một trong những phần mềm bán chạy hàng đầu trong những năm 1980 và đầu những năm 1990.

Những năm 1990, hướng đối tượng

Những năm 1990, cùng với sự gia tăng trong lập trình hướng đối tượng, đã chứng kiến sự tăng trưởng về cách xử lý dữ liệu trong các cơ sở dữ liệu khác nhau. Các lập trình viên và nhà thiết kế bắt đầu coi dữ liệu trong cơ sở dữ liệu của họ là đối tượng. Điều đó có nghĩa là nếu dữ liệu của một người nằm trong cơ sở dữ liệu, các thuộc tính của người đó, như địa chỉ, số điện thoại và tuổi của họ, giờ đây được coi là thuộc về người đó thay vì dữ liệu không liên quan. Điều này cho phép các mối quan hệ giữa dữ liệu là quan hệ với các đối tượng và thuộc tính của chúng chứ không phải cho các trường riêng lẻ.[20] Thuật ngữ " không khớp trở kháng quan hệ đối tượng " đã mô tả sự bất tiện của việc dịch giữa các đối tượng được lập trình và các bảng cơ sở dữ liệu. Cơ sở dữ liệu đối tượng và cơ sở dữ liệu quan hệ đối tượng cố gắng giải quyết vấn đề này bằng cách cung cấp ngôn ngữ hướng đối tượng (đôi khi là phần mở rộng cho SQL) mà các lập trình viên có thể sử dụng thay thế cho SQL hoàn toàn quan hệ. Về phía lập trình, các thư viện được gọi là ánh xạ quan hệ đối tượng (ORM) cố gắng giải quyết vấn đề tương tự.

Những năm 2000, NoSQL và NewSQL

Cơ sở dữ liệu XML là một loại cơ sở dữ liệu hướng tài liệu có cấu trúc, cho phép truy vấn dựa trên các thuộc tính tài liệu XML. Cơ sở dữ liệu XML chủ yếu được sử dụng trong các ứng dụng mà dữ liệu được xem thuận tiện dưới dạng tập hợp tài liệu, với cấu trúc có thể thay đổi từ rất linh hoạt đến rất cứng nhắc: ví dụ bao gồm các bài báo khoa học, bằng sáng chế, hồ sơ thuế và hồ sơ nhân sự.

sở dữ liệu NoSQL thường rất nhanh, không yêu cầu lược đồ bảng cố định, tránh các hoạt động tham gia bằng cách lưu trữ dữ liệu không chuẩn hóa và được thiết kế để mở rộng theo chiều ngang.

Trong những năm gần đây, có nhu cầu lớn về cơ sở dữ liệu phân tán ồ ạt với dung sai phân vùng cao, nhưng theo định lý CAP, hệ thống phân tán không thể đồng thời cung cấp sự đảm bảo tính nhất quán, tính sẵn sàng và phân vùng. Một hệ thống phân tán có thể đáp ứng bất kỳ hai trong số các bảo đảm này cùng một lúc, nhưng không phải cả ba. Vì lý do đó, nhiều cơ sở dữ liệu NoSQL đang sử dụng cái được gọi là tính nhất quán cuối cùng để cung cấp cả đảm bảo dung sai phân vùng và tính sẵn sàng với mức độ thống nhất dữ liệu giảm.

NewSQL là một lớp cơ sở dữ liệu quan hệ hiện đại nhằm cung cấp hiệu năng có thể mở rộng tương tự của các hệ thống NoQuery để xử lý khối lượng công việc xử lý giao dịch trực tuyến (đọc-ghi) trong khi vẫn sử dụng SQL và duy trì bảo đảm ACID của hệ thống cơ sở dữ liệu truyền thống.

Tài liệu tham khảo

WikiPedia: Cơ_sở_dữ_liệu http://databases.about.com/od/sql/a/sqlfundamental... http://drdobbs.com/blogs/database/228700616 http://www.embedded-computing.com/articles/id/?202... http://publib.boulder.ibm.com/infocenter/db2luw/v9... http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?... http://www.ibmpressbooks.com/articles/article.asp?... http://www.merriam-webster.com/dictionary/administ... http://www.merriam-webster.com/dictionary/retrieva... http://www.merriam-webster.com/dictionary/update http://www.obitko.com/tutorials/ontologies-semanti...